Pattern Analysis for a Multi-Dimensional Analytical System

ABSTRACT

A pattern analysis system enables a user to obtain specific analysis from multi-dimensional storage structures. The patterns analysis system guides the user interaction through the selection of specific available patterns. This enables the user to gain access to analytics data available in the multi-dimensional storage structure without specific knowledge of a command system syntax or semantics. Also, the user does not need knowledge of the contents or organization of the multi-dimensional storage structure.

BACKGROUND

1. Field of the Invention

This invention is related to a data query system. Specifically, theinvention is related to a method and apparatus for a guided query systemfor multi-dimensional storage structures.

2. Background

Current analytics applications attempt to provide easy access toanalytic information. These applications get their data fromtransactional systems through a process involving extraction,transformation and loading. In this process, transaction data iscollected, cleaned, codified and reorganized and loaded by the analyticapplication to generate reports and analysis. However, current analyticapplications have many significant drawbacks.

To obtain specific analytic information or data when the user is notaware of a pre-defined report or search for this data, a user of ananalytic program must navigate a series of user interfaces to find thedata necessary to answer their questions. This navigation of theavailable data is tedious and time consuming for the user. Thenavigation process diminishes the productivity of the user due to theextensive trial and error required to find the necessary data. Thesenavigations lack any structure or guidance to assist the user in findingthe necessary data for generating concrete analysis.

Other database searching procedures and functions are unsuited orinefficient for the purposes of identifying specific analyticinformation where pre-defined searches or reports are not known to theuser. Traditional search engines that allow the entry of Englishquestions generate non-deterministic results and lack focus due to thedifficulty of parsing the user's intent from the input of the Englishlanguage text. To obtain deterministic results strictly defined codes orcommands must be utilized. Even if English language phrases arecorrelated to these codes or commands in place of esoteric programminglanguage commands or codes, the user is required to understand thedetails of the data structure being queried and to understand thesemantics and syntax necessary for the use of the commands and codes toconstruct precise queries using these commands, codes and knowledge ofthe data structure. Hybrids of these systems have not significantlymitigated these drawbacks.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated by way of example and notby way of limitation and the figures of the accompanying drawings inwhich like references indicate similar elements. It should be noted thatdifferent references to “an” or “one” embodiment in this disclosure arenot necessarily to the same embodiment, and such references mean atleast “one.”

FIG. 1 is a diagram of one embodiment of a pattern analysis system.

FIG. 2 is a flowchart of one embodiment of a pattern analysis process.

FIG. 3A is a flowchart of one embodiment of a pattern for trendanalysis.

FIG. 3B is a flowchart of one embodiment of a pattern for volumeanalysis.

FIG. 3C is a flowchart of one embodiment of a pattern for countanalysis.

FIG. 3D is a flowchart of one embodiment of a pattern for benchmarkanalysis.

FIG. 3E is a flowchart of one embodiment of a pattern for comparisonanalysis.

FIG. 4A is a diagram of one embodiment of a menu-based user interfacefor pattern analysis.

FIG. 4B is a diagram of one embodiment of a text-based interface forpattern analysis.

FIG. 5 is a flowchart of one embodiment of a process for pattern design.

DETAILED DESCRIPTION

FIG. 1 is a diagram of one embodiment of a pattern analysis system. Inone embodiment, the pattern analysis system includes at least onecomputer system 101 that implements a pattern service module 113,pattern engine 115 and a pattern designer 117. In some embodiments, thepattern analysis system may be a distributed system. The distributedsystem can include any number of remote computing devices 133 thatcommunicate with the computer system 101 over a network 111. Thecomputer system 101 and remote computer system 133 can be any type ofcomputing devices including desktop computers, dedicated servers,workstations, laptop computers, network elements, handheld devices andsimilar computing devices. Network 111 may be a local area network(LAN), a wide area network (WAN), such as the Internet, or similartelecommunication system. The network 111 may be composed of any numberof network elements and communicate over any number of mediums includingwireless communications and wired communication lines.

The computer system 101 can implement the pattern analysis system assoftware, hardware components or any combination thereof. In oneembodiment, the pattern analysis system is implemented primarily in anapplication layer 145 of a local software environment 127 that includesan interface layer 103, data management layer 125, model administrationlayer 109 and a metadata management layer 107. The application layer 145may include any number of applications other than the pattern analysissystem, which operate within the software environment 127. The userinterface layer 103 provides standard user interface elements includingwindows, buttons, fixed fields and similar user interface elements thatenable a user to view and interact with the pattern analysis system andthe data output by the components of the pattern analysis system. Thedata management layer 125 manages the retrieval of data, storage of dataand querying that involve a multi-dimensional storage structure and/or astorage device or database in which a multi-dimensional storagestructure 129 is stored. Data management layer 125 can manage any numberof multi-dimensional storage structures 129, which may be stored locallyor remotely in any number of storage devices 131, 139. As used herein a“multi-dimensional storage structure” refers to a data source with dataorganized by at least two types of relational tables, dimensional tablesand measure tables (sometimes referred to as fact tables), wheredimensional tables contain categorical data and measure tables containnumerical data and the two types of tables are correlated via foreignkeys.

The software environment 127 may also include a metadata managementlayer 107. The metadata management layer 107 provides a reference forall available data structures, resources and functions within thesoftware environment 127. Any of the other layers can draw on andinterface with the metadata management layer to obtain this information.The model administration layer 109 facilitates the storage and retrievalof models such as patterns for use by the components of the patternanalysis system.

The pattern analysis system includes a pattern service module 113, apattern engine 115 and a pattern designer 117. The pattern servicemodule 113 interacts with the user interface layer 103 and receives userinput to facilitate the interaction of the user with the patterndesigner 117 and the pattern engine 115. The pattern service module 113interfaces with the user interface layer 103 and the other aspects ofthe software environment 127 to generate and display the guided userinterface that enables the user to select a pattern and input patternparameters. The pattern service module 113 then passes the patternselection and pattern parameters to the pattern engine 115. The patternengine 115 executes the selected pattern and pattern parameters andgenerates a report. The patterns engine 115 then returns the report,data and related output directly through the user interface layer 103 tothe user or back through the pattern service module 115, which in turndisplays the generated report through the user interface 103.

The pattern designer 117 includes an input editor 119, report creator121 and output formatter 123. The pattern designer 117 is an applicationthat enables the user to generate new patterns, which then can be storedand utilized by the user or other users. These new patterns are managedby the model administration layer 109. The input editor 119 is acomponent that enables the user to define a set of parameters that areassociated with a pattern. This defined set of parameters limits orspecifies the types of data that the associated pattern can process orthat are needed for processing by the pattern. A “set,” as used herein,refers to any positive whole number of items, including one item. Theinput editor 119 defines a set of parameters and is also used whengenerating the guided pattern selection to identify the allowable set ofparameters to be used with the pattern. The input editor 119 also allowsthe user to define a name for the definition, an associated ‘userintent’ and an associated report in which the input is used. The userintent is an identifier that can be used by the guided pattern selectionprocess to identify the data (e.g., analysis results in the form ofreports) that the user is seeking.

The report creator 121 is a component that enables the user to definethe report generation sequence, to identify the name of the report, toidentify a type for the result, and to identify an output format for theresult. The report sequence is executed by the pattern engine 115 toobtain the results sought by a user. The report sequence identifies aset of steps for processing the pattern parameters and retrievingnecessary information from the multi-dimensional storage structure ofthe parameters of the pattern specified through the input editor. Thesesteps include accessing the appropriate measure data and numeric data ormeasure data and dimensional data identified by the input parameters, aswell as, defining a formula or algorithm to apply to the retrieved data(e.g., analysis results, such as volume, trend, comparison, benchmark,or count formulas).

The output formatter 123 is a component that enables the user to definea name for the output, identify the analysis result associated with theoutput format and to identify a template for the display of the output.In one embodiment, the output formatter 123 may also allow thedefinition of the template or the modification of the template. Theoutput formats defined by the output formatter 123 are used by thepattern engine 115 and/or the pattern service module 113 to organize andformat the pattern result data to be displayed to a user. In oneembodiment, the pattern engine 115 is responsible for output formatting,and pattern service module 113 is responsible for passing the formattedoutput to the presentation layer.

In one embodiment, the pattern analysis system is a distributed systemwhere the pattern service module 113, pattern engine 115 and patterndesigner 117 may be accessible over a network 111 at a remote computersystem 133. Similarly, the output of the pattern analysis system may beviewable over a network 111 through a remote computer system 133. Theremote computer system 133 can implement any part of the patternanalysis system or the software environment or any subcomponent thereoflocally. In one embodiment, the remote computer system 133 implements aremote data storage management layer 137. In one embodiment, the systemprovides a Rich Internet Application (RIA). Once the application isloaded on the remote computer system 133, there is only data sent acrossthe network 111.

In this embodiment, the pattern analysis system that is implemented oncomputer system 101 may access remote storage devices 139 andmulti-dimensional storage structures 141 over the network 111 at theremote computer system 133. Any number of computers and storage systemsmay operate over a set of networks to provide the functionality of thepattern analysis system in a distributor fashion. One of ordinary skillin the art would understand that the embodiment described herein is byway of example and that other variations utilizing the principles andcomponents described herein are within the scope of the invention.

FIG. 2 is a flowchart of one embodiment of the process of the patternanalysis system. In one embodiment the pattern analysis system isinitiated by a user through a user interface or similarly activated. Thepattern analysis system may be a component of or integrated with anytype of program including performance management systems and similarenterprise software. The pattern analysis system through the patternservice module and user interface layer generates a pattern selectionscreen and user interface (Block 201). The pattern selection screen canpresent the available patterns through a text based, menu based orsimilar type of user interface. The available patterns are identified byan associated ‘user intent,’ allowing the user to identify a patternwithout having to have specific knowledge of the pattern such as theprocesses and parameters of the pattern. The user interacts with thepattern selection screen of the user interface to select one of theavailable patterns (Block 203). The pattern services module presentsonly those patterns that are available as options to the user.

Upon selection of a pattern, the user interface is updated by thepattern services module to display the set of parameters that areavailable and associated with the selected pattern (Block 205). Theavailable parameters can be displayed through a parameter selectionscreen. Only the available parameters are displayed, allowing the userto select parameters appropriate for obtaining the desired data and thatare supported by the selected pattern without requiring specificknowledge about the pattern or parameter associations from the user. Theuser then selects which of these parameters the user wishes to use inconjunction with the selected pattern (Block 207). The pattern servicesmodule then calls the pattern engine and provides a copy of the selectedpattern and the selected parameters to the pattern engine (Block 209).

The pattern engine then executes the pattern and generates a resultusing the selected pattern, the input parameters and data from themulti-dimensional storage structure (Block 211). The result data is thenformatted into a report to be displayed to the user (Block 213). Thepatterns are a defined sequence of functions and parameters coupled withthe output template that interact with the multi-dimensional data storeto provide a user with desired analysis in a deterministic fashionwithout requiring the user to have knowledge of the available commands,queries, reports and/or contents and structure of the multi-dimensionalstorage structure.

FIG. 3A is a flowchart of one embodiment of a pattern for trendanalysis. In the example pattern, a trend pattern is initiated by theselection of the specific trend pattern by a user (Block 301). A trendpattern can be selected by a user based on the user's intent identifier.For example, a trend pattern may be selected to calculate a trend inbond prices. The process then receives the inputs specified by the user,in this case, measure data and time data for a specificmulti-dimensional storage structure (Block 303). In the bond price trendexample, the measure would be selected from the available parameters as‘bond prices’ and the time data selected as ‘Monday.’ In someembodiments, the identified input data is retrieved as an object, blockor set of data. The specific data required for the pattern is thenretrieved from this data (Block 305). In the trend pattern, the currentand previous measure values are identified. The current and previousmeasure values are then compared to determine whether they indicate apositive or negative trend (Block 307). This information is theninserted or organized into a trend format that is associated with thetrend pattern and output to a display to be viewed by a user (Block309). In the trend pattern format example, the output could be “Bondprices rose on Monday.” The result data can also be stored or otherwiseoutput for the user.

FIG. 3B is a flowchart of one embodiment of a pattern for volumeanalysis. In the example pattern, a volume pattern is initiated by theselection of the specific volume pattern by a user (Block 311). A volumepattern can be selected by a user based on the user's intent identifier.For example, a volume pattern may be selected to calculate a Dow Jonesindustrial average volume. The process then receives the inputsspecified by the user, in this case, measure data and time data for aspecific multi-dimensional storage structure (Block 313). In the DowJones volume example, the measure would be selected from the availableparameters as ‘Dow Jones industrial average’ and the time data selectedas ‘today.’ In some embodiments, the identified input data is retrievedas an object, block or set of data. The specific data required for thepattern is then retrieved from this data (Block 315). In the volumepattern, the current and previous measure values are identified. Thecurrent and previous measure values are then used to determine thedifference and percent of change between the current and previousmeasure values (Block 317). This information is then inserted ororganized into a volume format that is associated with the volumepattern and output to a display to be viewed by a user (Block 319). Inthe volume pattern format example, the output could be “the Dow JonesIndustrial average fell 15.87, or 0.2 percent to 8,539.73.’ The resultdata can also be stored or otherwise output for the user.

FIG. 3C is a flowchart of one embodiment of a pattern for countanalysis. In the example pattern, a count pattern is initiated by theselection of the specific count pattern by a user (Block 321). A countpattern can be selected by a user based on the user's intent identifier.For example, a count pattern may be selected to calculate a number ofstocks that rose on the New York Stock Exchange for a given time period.The process then receives the inputs specified by the user, in thiscase, dimension data and count type data for a specificmulti-dimensional storage structure (Block 323). In the New York StockExchange count example, the dimension would be selected from theavailable parameters as ‘New York Stock Exchange’ and the count typedata selected as ‘stock performance.’ In some embodiments, theidentified input data is retrieved as an object, block or set of data.The specific data required for the pattern is then retrieved from thisdata (Block 325). In the count pattern, the dimension members areidentified. The dimension members are then used to determine the countsfor each dimension member (Block 327). This information is then insertedor organized into a count format that is associated with the countpattern and output to a display to be viewed by a user (Block 329). Inthe count pattern format example, the output could be “Three stock rosefor every two that fell on the New York Stock Exchange.” The result datacan also be stored or otherwise output for the user.

FIG. 3D is a flowchart of one embodiment of a pattern for benchmarkanalysis. In the example pattern, a benchmark pattern is initiated bythe selection of the specific benchmark pattern by a user (Block 331). Abenchmark pattern can be selected by a user based on the user's intentidentifier. For example, a benchmark pattern may be selected todetermine the historical context of the status of major market indicesfor a given time period. The process then receives the inputs specifiedby the user, in this case, dimension data and benchmark type data for aspecific multi-dimensional storage structure (Block 333). In the majorindices benchmark example, the dimension would be selected from theavailable parameters as ‘major market indices’ and the benchmark typedata selected as ‘first down stock performance.’ In some embodiments,the identified input data is retrieved as an object, block or set ofdata. The specific data required for the pattern is then retrieved fromthis data (Block 335). In the benchmark pattern, the dimension membersare identified. The dimension members are then used to determine thebenchmarks for each dimension member (Block 337). This information isthen inserted or organized into a benchmark format that is associatedwith the benchmark pattern and output to a display to be viewed by auser (Block 339). In the bench pattern format example, the output couldbe “All major indices closed the week down for the first time since theweek of May 11.” The result data can also be stored or otherwise outputfor the user.

FIG. 3E is a flowchart of one embodiment of a pattern for comparisonanalysis. In the example pattern, a comparison pattern is initiated bythe selection of the specific comparison pattern by a user (Block 341).A comparison pattern can be selected by a user based on the user'sintent identifier. For example, a comparison pattern may be selected tocompare the performance of two stocks for a given time period. Theprocess then receives the inputs specified by the user, in this case,dimension data and comparison type data for a specific multi-dimensionalstorage structure (Block 343). In the stock performance comparisonexample, the dimension would be selected from the available parametersas ‘tech companies’ and the comparison type data selected as ‘stockperformance.’ In some embodiments, the identified input data isretrieved as an object, block or set of data. The specific data requiredfor the pattern is then retrieved from this data (Block 345). In thecomparison pattern, the dimension members are identified. The dimensionmembers are then used to determine the comparison of each dimensionmember (Block 347). This information is then inserted or organized intoa comparison format that is associated with the comparison pattern andoutput to a display to be viewed by a user (Block 349). In thecomparison pattern format example, the output could be “Apple sharesadded $3.60, or 2.7 percent to $139.48 while rival smart phone makerPalm, Inc. jumped more than 6 percent, rising 87 cents to $13.93.” Theresult data can also be stored or otherwise output for the user.

FIG. 4A is a diagram of one embodiment of a menu driven user interfacefor the pattern analysis system. In the example user interface, aninitial set of menus 401 is provided. In the example, drop down menusare present. In other embodiments, other types of menus and similar userinterface mechanism are utilized. The first menu 401 is tied to thepattern selection. It is displayed to the user as a set of possiblepatterns. The description of the patterns is in the form of a questionor similar representation of user intent. For example, a trend patterncan be presented as “Trend—What's the trend of.”

After a pattern has been selected that most closely matches the userintent, then a second menu 403A is made active. The second menu 403Adisplays a list of possible parameters for the selected pattern. Anynumber of input selection menus 403A, 403B or similar user interfacemechanisms can be utilized to allow a user to be selected from theavailable parameters. The number of inputs and the range of parametersare defined in the selected pattern.

Once the pattern and parameters have been selected the user interface isautomatically updated to display the formatted result. The patternengine executes the pattern based on the currently selected set ofparameters. A user can dynamically change the patterns and parameters toautomatically obtain results based on these changes.

FIG. 4B is a diagram of one embodiment of a text-based interface forpattern analysis. In this embodiment, the user is allowed to input theirintended question or query as text through a text input field 453. Theuser interface is automatically updated to provide a pattern matchingwindow 451 with all defined user intention identifiers that match orpartially match the input text. At any point, the user can select anoption from the pattern matching window 451. The user can continue totype and define their interest to further narrow the options that areprovided in the pattern matching window 451.

Once a pattern has been selected from the pattern matching window 451 orby typing in the text field 453 the pattern matching window displaysparameter matching options 455. A user can select a parameter matchingoption at any time or can continue to type and narrow the range of theoptions until a set of parameters is selected through the window or asingle option remains in the window.

Once the pattern and input parameters have been selected a result isautomatically generated and displayed 457 by the pattern engine. Thegenerated results can be dynamically updated in response to a useraltering the input parameter selection or pattern selection through thealteration of the text field 453. Thus, the user is able to obtaineddesired result information without any specific knowledge of the syntaxor semantics of a query language and/or without any knowledge of themulti-dimensional storage structure in which available data is stored.

FIG. 5 is a flowchart of one embodiment of a process for pattern design.In one embodiment, the pattern design process can be initiated by a userby selection of the pattern designer or through the patter servicesmodule. The pattern designer and/or patter services module incombination with the user interface layer generate a user interface fordesigning patterns (Block 501). The user interface can utilize menus,text fields, button, frames and similar user interface elements toprovide the user with a set of tools for defining new patterns to beadded to the system.

In one embodiment, the pattern designer provides a guided interface forgenerating a new patter. The pattern designer first prompts and providesan interface for defining a set of parameters for a new pattern throughthe input editor (Block 503). The input editor can have an integrateduser interface with the overall pattern designer or can have a separatescreen or window to enable a user to define the set of parameters toassociate with a pattern. The input editor can restrict the set ofparameters present to those available in accessible multi-dimensionalstorage structures or those that have a relationship in these structuresto those parameters that have already been defined.

The input information received through the input editor includes a nameof an associated pattern, a user intent identifier, a set of parametersand an associated report identifier (block 505). The received data canbe stored as a part of the pattern and managed by the modeladministration or can be similarly stored. After the input data has beenreceived or defined, then the pattern designer can advance to the reportcreation stage.

The report creator in combination with the pattern designer, userinterface layer and/or pattern services module generates a userinterface to enable the user to define a report to be associated with anew pattern (Block 507). In another embodiment, the report creator canalso present existing reports that can be modified or associated as-iswith the new pattern. The report creator can have an interface that isintegrated with the pattern designer or a separate screen or window. Thereport creator receives a report name, report sequence, resultdefinition, and output format indicator (Block 509). The report sequencespecifies a set of functions, calculations or similar actions that areto be performed on the specified parameters and related data. After thereport data has been received or defined the output formatting must bespecified.

The output formatter in combination with the pattern designer, userinterface layer and/or pattern services module generates a userinterface to enable the user to define a report format to be associatedwith a new pattern (Block 511). In another embodiment, the outputformatter can also present existing templates that can be modified orassociated as-is with the new pattern. The output formatter can have aninterface that is integrated with the pattern designer or a separatescreen or window. The output formatter receives a output name, resultvalue identifier and output template indicator. After the output formatdata has been received or defined the pattern is saved and added to themodel repository of available patterns (Block 513). The set of availablepatterns can be managed by the model administration layer or similarcomponent of the system.

In one embodiment, the pattern analysis system can be implemented as aset of hardware devices. In another embodiment, the system componentsare implemented in software (for example microcode, assembly language orhigher level languages). These software implementations can be stored ona computer-readable medium. A “computer-readable” medium can include anymedium that can store information. Examples of the computer-readablemedium include a read only memory (ROM), a floppy diskette, a CD Rom, aDVD, a flash memory, a hard drive, an optical disc or similar medium.

In the foregoing specification, the invention has been described withreferences to specific embodiments. It will, however, be evident thatvarious modifications and changes can be made thereto without departingfrom the broader spirit and scope that is set forth in the appendedclaims. The specification and drawings are accordingly to be regarded inillustrative rather than a restrictive sense.

1. A method comprising: receiving input from a user through a guideduser interface that restricts input to a set of available patterns thatare identified with a user intent description and without requiringspecific user knowledge of the set of available patterns; identifying apattern and at least one parameter from the user input; and executing bya computer system the pattern on a multi-dimensional data source toobtain a report with deterministic values.
 2. The method of claim 1,further comprising: restricting user input specifying the at least oneparameter to one of a plurality of available parameters.
 3. The methodof claim 1, wherein the set of available patterns include a trendanalysis pattern, a volume analysis pattern, a count analysis pattern, abenchmark analysis pattern, and a comparison analysis pattern.
 4. Themethod of claim 1, further comprising: receiving user input defining apattern through a pattern design component.
 5. The method of claim 1,wherein the guided user interface is menu driven or text-based.
 6. Themethod claim 4, wherein defining a pattern further comprises: receivinguser input defining allowable parameters, a user intent identifier andan analysis report for a pattern through an input editor.
 7. The methodof claim 6, wherein defining an analysis report further comprises:receiving user input defining a report sequence, analysis result andoutput format through a report creator.
 8. The method of claim 7,wherein defining the output format further comprises: receiving userinput defining an output template.
 9. An apparatus comprising: a patternservices module to receive a user input and provide a guided userinterface that restricts the user input to one of a plurality of definedpatterns that are displayed with a user intent description; and apattern engine module coupled to the pattern services module, thepattern engine module to execute a pattern selected by the user on amulti-dimensional data source to generate a report with deterministicvalues.
 10. The apparatus of claim 9, wherein the pattern servicesmodule restricts parameters input to at least one of a plurality ofparameters specific to the pattern.
 11. The apparatus of claim 9,further comprising: a pattern design module to provide an interface fordefining a pattern.
 12. The apparatus of claim 11, wherein the patterndesign module comprises: an input editor module to provide a userinterface to define allowable parameters, a user intent identifier andan analysis report for the pattern.
 13. The apparatus of claim 11,wherein the pattern design module comprises: a report creator module todefine a report sequence, analysis result and output format.
 14. Theapparatus of claim 8, wherein the pattern design module comprises: anoutput formatting module to define an output template.
 15. Acomputer-readable medium having instructions stored therein, which whenexecuted, cause a computer to perform a set of operations comprising:generating a guided user interface to restrict user requests to aplurality of defined patterns identified by a user intent descriptor;executing by a computer system a user selected pattern to generate areport using a multi-dimensional data source to be output to a user, theoutput being deterministic.
 16. The computer-readable medium of claim15, wherein the guided user interface is one of a menu-based ortext-based interface.
 17. The computer-readable medium of claim 15,having further instructions stored therein, which when executed causethe computer to perform a further set of operations comprising:generating a pattern design interface to enable a user to define apattern.
 18. The computer-readable medium of claim 15, having furtherinstructions stored therein, which when executed cause the computer toperform a further set of operations comprising: restricting parameterselection for a pattern through the guided user interface based on aplurality of defined parameters for the pattern.
 19. Thecomputer-readable medium of claim 15, having further instructions storedtherein, which when executed cause the computer to perform a further setof operations comprising: receiving user input defining allowableparameters, a user intent identifier and an analysis report for apattern through an input editor.
 20. The computer-readable medium ofclaim 15, having further instructions stored therein, which whenexecuted cause the computer to perform a further set of operationscomprising: receiving user input defining a report sequence, analysisresult and output format through a report creator.